package com.cloudlinkscm.base.filecenter.common;

import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by syq on 2017/7/22.
 */
public class FileUtil {
    private static final Pattern fileNamePattern = Pattern.compile("(.+)(\\.)(\\w+)");

    /**
     * 判断指定文件是否为空
     */
    public static boolean isEmpty(MultipartFile file){
        return (null == file || StringUtils.isBlank(file.getName()) || file.getSize() <= 0);
    }

    /**
     * 从文件全名中提取出文件扩展名
     * <br/>
     *
     * <ul>
     *     <li>若文件命名本身无扩展名，则返回空字符串</li>
     *     <li>若文件名为空，则返回null</li>
     * </ul>
     */
    public static String getFileExt(String fullName) {
        if (StringUtils.isBlank(fullName)) {
            return null;
        }

        Matcher matcher = fileNamePattern.matcher(fullName);
        return matcher.find() ? matcher.group(3) : "";
    }

    /**
     * 从文件全名中提取出文件名（不包含扩展名）
     * <br/>
     *
     * <ul>
     *     <li>若文件命名本身无扩展名，则直接返回</li>
     *     <li>若文件名为空，则返回null</li>
     * </ul>
     */
    public static String getFileName(String fullName) {
        if (StringUtils.isBlank(fullName)) {
            return null;
        }

        Matcher matcher = fileNamePattern.matcher(fullName);
        return matcher.find() ? matcher.group(1) : fullName;
    }
}
